<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>TemplateType (Closure Compiler)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="TemplateType (Closure Compiler)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/javascript/rhino/jstype/StringType.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/google/javascript/rhino/jstype/TemplateTypeMap.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/javascript/rhino/jstype/TemplateType.html" target="_top">Frames</a></li>
<li><a href="TemplateType.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.javascript.rhino.jstype</div>
<h2 title="Class TemplateType" class="title">Class TemplateType</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">com.google.javascript.rhino.jstype.JSType</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">com.google.javascript.rhino.jstype.ObjectType</a></li>
<li>
<ul class="inheritance">
<li>com.google.javascript.rhino.jstype.TemplateType</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;, java.io.Serializable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">TemplateType</span>
extends <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#com.google.javascript.rhino.jstype.TemplateType">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_com.google.javascript.rhino.jstype.JSType">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.TypePair.html" title="class in com.google.javascript.rhino.jstype">JSType.TypePair</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_com.google.javascript.rhino.jstype.JSType">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#EMPTY_TYPE_COMPONENT">EMPTY_TYPE_COMPONENT</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#ENUMDECL">ENUMDECL</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#NOT_A_CLASS">NOT_A_CLASS</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#NOT_A_TYPE">NOT_A_TYPE</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#NOT_ENUMDECL">NOT_ENUMDECL</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#templateTypeMap">templateTypeMap</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#UNKNOWN_NAME">UNKNOWN_NAME</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#canBeCalled()">canBeCalled</a></strong>()</code>
<div class="block">This predicate is used to test whether a given type can be used as the
 'function' in a function call.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#collapseUnion()">collapseUnion</a></strong>()</code>
<div class="block">Gets the least supertype of this that's not a union.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#findPropertyType(java.lang.String)">findPropertyType</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Coerces this type to an Object type, then gets the type of the property
 whose name is given.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getConstructor()">getConstructor</a></strong>()</code>
<div class="block">Gets this object's constructor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Iterable&lt;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getCtorImplementedInterfaces()">getCtorImplementedInterfaces</a></strong>()</code>
<div class="block">Gets the interfaces implemented by the ctor associated with this type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getImplicitPrototype()">getImplicitPrototype</a></strong>()</code>
<div class="block">Gets the implicit prototype (a.k.a.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getJSDocInfo()">getJSDocInfo</a></strong>()</code>
<div class="block">Gets the docInfo for this type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getOwnerFunction()">getOwnerFunction</a></strong>()</code>
<div class="block">Gets the owner of this if it's a function prototype.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getReferenceName()">getReferenceName</a></strong>()</code>
<div class="block">Gets the reference name for this object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/TemplateTypeMap.html" title="class in com.google.javascript.rhino.jstype">TemplateTypeMap</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getTemplateTypeMap()">getTemplateTypeMap</a></strong>()</code>
<div class="block">Returns the template type map associated with this type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getTemplateTypes()">getTemplateTypes</a></strong>()</code>
<div class="block">Gets the declared default element type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#getTypeOfThis()">getTypeOfThis</a></strong>()</code>
<div class="block">Returns the expected type of <code>this</code> in the current scope.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#hasAnyTemplateTypesInternal()">hasAnyTemplateTypesInternal</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#hasReferenceName()">hasReferenceName</a></strong>()</code>
<div class="block">Returns true if the object is named.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isAllType()">isAllType</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isCheckedUnknownType()">isCheckedUnknownType</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isConstructor()">isConstructor</a></strong>()</code>
<div class="block">Whether this type is a <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype"><code>FunctionType</code></a> that is a constructor or a
 named type that points to such a type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isDict()">isDict</a></strong>()</code>
<div class="block">Returns true iff <code>this</code> can be a <code>dict</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isInstanceType()">isInstanceType</a></strong>()</code>
<div class="block">Whether this type is an Instance object of some constructor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isInterface()">isInterface</a></strong>()</code>
<div class="block">Whether this type is a <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype"><code>FunctionType</code></a> that is an interface or a named
 type that points to such a type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isNativeObjectType()">isNativeObjectType</a></strong>()</code>
<div class="block">Whether this is a built-in object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isNominalType()">isNominalType</a></strong>()</code>
<div class="block">Whether this type is a nominal type (a named instance object or
 a named enum).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isNoObjectType()">isNoObjectType</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isNoResolvedType()">isNoResolvedType</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isNoType()">isNoType</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isNullable()">isNullable</a></strong>()</code>
<div class="block">Tests whether this type is nullable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isOrdinaryFunction()">isOrdinaryFunction</a></strong>()</code>
<div class="block">Whether this type is a <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype"><code>FunctionType</code></a> that is an ordinary function or
 a named type that points to such a type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isStruct()">isStruct</a></strong>()</code>
<div class="block">Returns true iff <code>this</code> can be a <code>struct</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isSubtype(com.google.javascript.rhino.jstype.JSType)">isSubtype</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;that)</code>
<div class="block">Checks whether <code>this</code> is a subtype of <code>that</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#isUnknownType()">isUnknownType</a></strong>()</code>
<div class="block">We treat this as the unknown type if any of its implicit prototype
 properties is unknown.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#matchConstraint(com.google.javascript.rhino.jstype.JSType)">matchConstraint</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;constraint)</code>
<div class="block">Modify this type so that it matches the specified type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#matchesNumberContext()">matchesNumberContext</a></strong>()</code>
<div class="block">This predicate is used to test whether a given type can appear in a
 numeric context, such as an operand of a multiply operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#matchesObjectContext()">matchesObjectContext</a></strong>()</code>
<div class="block">This predicate is used to test whether a given type can appear in an
 <code>Object</code> context, such as the expression in a with statement.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#matchesStringContext()">matchesStringContext</a></strong>()</code>
<div class="block">This predicate is used to test whether a given type can appear in a
 <code>String</code> context, such as an operand of a string concat (+) operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#removeProperty(java.lang.String)">removeProperty</a></strong>(java.lang.String&nbsp;name)</code>
<div class="block">Removes the declared or inferred property from this ObjectType.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#setJSDocInfo(com.google.javascript.rhino.JSDocInfo)">setJSDocInfo</a></strong>(<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</code>
<div class="block">Sets the docInfo for this type from the given
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#setPropertyJSDocInfo(java.lang.String, com.google.javascript.rhino.JSDocInfo)">setPropertyJSDocInfo</a></strong>(java.lang.String&nbsp;propertyName,
                    <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</code>
<div class="block">Sets the docInfo for the specified property from the
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a> on its definition.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html" title="enum in com.google.javascript.rhino.jstype">TernaryValue</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#testForEquality(com.google.javascript.rhino.jstype.JSType)">testForEquality</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;that)</code>
<div class="block">Compares <code>this</code> and <code>that</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toDebugHashCodeString()">toDebugHashCodeString</a></strong>()</code>
<div class="block">A hash code function for diagnosing complicated issues
 around type-identity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/EnumElementType.html" title="class in com.google.javascript.rhino.jstype">EnumElementType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toMaybeEnumElementType()">toMaybeEnumElementType</a></strong>()</code>
<div class="block">Downcasts this to an EnumElementType, or returns null if this is not an EnumElementType.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/EnumType.html" title="class in com.google.javascript.rhino.jstype">EnumType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toMaybeEnumType()">toMaybeEnumType</a></strong>()</code>
<div class="block">Downcasts this to an EnumType, or returns null if this is not an EnumType.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toMaybeFunctionType()">toMaybeFunctionType</a></strong>()</code>
<div class="block">Downcasts this to a FunctionType, or returns null if this is not
 a function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html" title="class in com.google.javascript.rhino.jstype">TemplateType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toMaybeTemplateType()">toMaybeTemplateType</a></strong>()</code>
<div class="block">Downcasts this to a TemplateType, or returns null if this is not
 a function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/TemplatizedType.html" title="class in com.google.javascript.rhino.jstype">TemplatizedType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toMaybeTemplatizedType()">toMaybeTemplatizedType</a></strong>()</code>
<div class="block">Downcasts this to a TemplatizedType, or returns null if this is not
 a function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/UnionType.html" title="class in com.google.javascript.rhino.jstype">UnionType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#toMaybeUnionType()">toMaybeUnionType</a></strong>()</code>
<div class="block">Downcasts this to a UnionType, or returns null if this is not a UnionType.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html#visit(com.google.javascript.rhino.jstype.Visitor)">visit</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/Visitor.html" title="interface in com.google.javascript.rhino.jstype">Visitor</a>&lt;T&gt;&nbsp;visitor)</code>
<div class="block">Visit this type with the given visitor.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_com.google.javascript.rhino.jstype.ObjectType">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#cast(com.google.javascript.rhino.jstype.JSType)">cast</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#clearCachedValues()">clearCachedValues</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#createDelegateSuffix(java.lang.String)">createDelegateSuffix</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#defineDeclaredProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">defineDeclaredProperty</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#defineInferredProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">defineInferredProperty</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#defineSynthesizedProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">defineSynthesizedProperty</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getCtorExtendedInterfaces()">getCtorExtendedInterfaces</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getDisplayName()">getDisplayName</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getNormalizedReferenceName()">getNormalizedReferenceName</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnPropertyJSDocInfo(java.lang.String)">getOwnPropertyJSDocInfo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnPropertyNames()">getOwnPropertyNames</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnSlot(java.lang.String)">getOwnSlot</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getParentScope()">getParentScope</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPossibleToBooleanOutcomes()">getPossibleToBooleanOutcomes</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertiesCount()">getPropertiesCount</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyNames()">getPropertyNames</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyNode(java.lang.String)">getPropertyNode</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyType(java.lang.String)">getPropertyType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getRootNode()">getRootNode</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getSlot(java.lang.String)">getSlot</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasCachedValues()">hasCachedValues</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasOwnProperty(java.lang.String)">hasOwnProperty</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasProperty(java.lang.String)">hasProperty</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isFunctionPrototypeType()">isFunctionPrototypeType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isObject()">isObject</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isPropertyInExterns(java.lang.String)">isPropertyInExterns</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isPropertyTypeDeclared(java.lang.String)">isPropertyTypeDeclared</a>, <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isPropertyTypeInferred(java.lang.String)">isPropertyTypeInferred</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_com.google.javascript.rhino.jstype.JSType">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#autobox()">autobox</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#autoboxesTo()">autoboxesTo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canCastTo(com.google.javascript.rhino.jstype.JSType)">canCastTo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canTestForEqualityWith(com.google.javascript.rhino.jstype.JSType)">canTestForEqualityWith</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canTestForShallowEqualityWith(com.google.javascript.rhino.jstype.JSType)">canTestForShallowEqualityWith</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#clearResolved()">clearResolved</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#dereference()">dereference</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#differsFrom(com.google.javascript.rhino.jstype.JSType)">differsFrom</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#equals(java.lang.Object)">equals</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#extendTemplateTypeMap(com.google.javascript.rhino.jstype.TemplateTypeMap)">extendTemplateTypeMap</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#forceResolve(com.google.javascript.rhino.ErrorReporter, com.google.javascript.rhino.jstype.StaticScope)">forceResolve</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getGreatestSubtype(com.google.javascript.rhino.jstype.JSType)">getGreatestSubtype</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getLeastSupertype(com.google.javascript.rhino.jstype.JSType)">getLeastSupertype</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getRestrictedTypeGivenToBooleanOutcome(boolean)">getRestrictedTypeGivenToBooleanOutcome</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderEquality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderEquality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderInequality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderInequality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderShallowEquality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderShallowEquality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderShallowInequality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderShallowInequality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hasAnyTemplateTypes()">hasAnyTemplateTypes</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hasDisplayName()">hasDisplayName</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isArrayType()">isArrayType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isBooleanObjectType()">isBooleanObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isBooleanValueType()">isBooleanValueType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isDateType()">isDateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEmptyType()">isEmptyType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEnumElementType()">isEnumElementType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEnumType()">isEnumType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEquivalent(com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.jstype.JSType)">isEquivalent</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEquivalentTo(com.google.javascript.rhino.jstype.JSType)">isEquivalentTo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isFunctionType()">isFunctionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isGlobalThisType()">isGlobalThisType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInvariant(com.google.javascript.rhino.jstype.JSType)">isInvariant</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNominalConstructor()">isNominalConstructor</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNullType()">isNullType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNumber()">isNumber</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNumberObjectType()">isNumberObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNumberValueType()">isNumberValueType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isRecordType()">isRecordType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isRegexpType()">isRegexpType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isResolved()">isResolved</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isString()">isString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStringObjectType()">isStringObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStringValueType()">isStringValueType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isTemplateType()">isTemplateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isTemplatizedType()">isTemplatizedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isUnionType()">isUnionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isVoidType()">isVoidType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesInt32Context()">matchesInt32Context</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesUint32Context()">matchesUint32Context</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#resolve(com.google.javascript.rhino.ErrorReporter, com.google.javascript.rhino.jstype.StaticScope)">resolve</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#restrictByNotNullOrUndefined()">restrictByNotNullOrUndefined</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#setValidator(com.google.common.base.Predicate)">setValidator</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toAnnotationString()">toAnnotationString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeFunctionType(com.google.javascript.rhino.jstype.JSType)">toMaybeFunctionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplateType(com.google.javascript.rhino.jstype.JSType)">toMaybeTemplateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplatizedType(com.google.javascript.rhino.jstype.JSType)">toMaybeTemplatizedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toObjectType()">toObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toString()">toString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#unboxesTo()">unboxesTo</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getReferenceName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReferenceName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getReferenceName()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getReferenceName()">ObjectType</a></code></strong></div>
<div class="block">Gets the reference name for this object. This includes named types
 like constructors, prototypes, and enums. It notably does not include
 literal types like strings and booleans and structural types.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the object's name or <code>null</code> if this is an anonymous
         object</dd></dl>
</li>
</ul>
<a name="toMaybeTemplateType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMaybeTemplateType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html" title="class in com.google.javascript.rhino.jstype">TemplateType</a>&nbsp;toMaybeTemplateType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplateType()">JSType</a></code></strong></div>
<div class="block">Downcasts this to a TemplateType, or returns null if this is not
 a function.</div>
</li>
</ul>
<a name="hasAnyTemplateTypesInternal()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasAnyTemplateTypesInternal</h4>
<pre>public&nbsp;boolean&nbsp;hasAnyTemplateTypesInternal()</pre>
</li>
</ul>
<a name="visit(com.google.javascript.rhino.jstype.Visitor)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>visit</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;visit(<a href="../../../../../com/google/javascript/rhino/jstype/Visitor.html" title="interface in com.google.javascript.rhino.jstype">Visitor</a>&lt;T&gt;&nbsp;visitor)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#visit(com.google.javascript.rhino.jstype.Visitor)">JSType</a></code></strong></div>
<div class="block">Visit this type with the given visitor.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value returned by the visitor</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../com/google/javascript/rhino/jstype/Visitor.html" title="interface in com.google.javascript.rhino.jstype"><code>Visitor</code></a></dd></dl>
</li>
</ul>
<a name="hasReferenceName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasReferenceName</h4>
<pre>public&nbsp;boolean&nbsp;hasReferenceName()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasReferenceName()">ObjectType</a></code></strong></div>
<div class="block">Returns true if the object is named.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasReferenceName()">hasReferenceName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the object is named, false if it is anonymous</dd></dl>
</li>
</ul>
<a name="matchesNumberContext()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchesNumberContext</h4>
<pre>public&nbsp;boolean&nbsp;matchesNumberContext()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesNumberContext()">JSType</a></code></strong></div>
<div class="block">This predicate is used to test whether a given type can appear in a
 numeric context, such as an operand of a multiply operator.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesNumberContext()">matchesNumberContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="matchesStringContext()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchesStringContext</h4>
<pre>public&nbsp;boolean&nbsp;matchesStringContext()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesStringContext()">JSType</a></code></strong></div>
<div class="block">This predicate is used to test whether a given type can appear in a
 <code>String</code> context, such as an operand of a string concat (+) operator.

 All types have at least the potential for converting to <code>String</code>.
 When we add externally defined types, such as a browser OM, we may choose
 to add types that do not automatically convert to <code>String</code>.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesStringContext()">matchesStringContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="matchesObjectContext()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchesObjectContext</h4>
<pre>public&nbsp;boolean&nbsp;matchesObjectContext()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesObjectContext()">JSType</a></code></strong></div>
<div class="block">This predicate is used to test whether a given type can appear in an
 <code>Object</code> context, such as the expression in a with statement.

 Most types we will encounter, except notably <code>null</code>, have at least
 the potential for converting to <code>Object</code>.  Host defined objects can
 get peculiar.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesObjectContext()">matchesObjectContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="canBeCalled()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canBeCalled</h4>
<pre>public&nbsp;boolean&nbsp;canBeCalled()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canBeCalled()">JSType</a></code></strong></div>
<div class="block">This predicate is used to test whether a given type can be used as the
 'function' in a function call.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canBeCalled()">canBeCalled</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if this type might be callable.</dd></dl>
</li>
</ul>
<a name="isNoType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNoType</h4>
<pre>public&nbsp;boolean&nbsp;isNoType()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNoType()">isNoType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isNoObjectType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNoObjectType</h4>
<pre>public&nbsp;boolean&nbsp;isNoObjectType()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNoObjectType()">isNoObjectType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isNoResolvedType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNoResolvedType</h4>
<pre>public&nbsp;boolean&nbsp;isNoResolvedType()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNoResolvedType()">isNoResolvedType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isUnknownType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUnknownType</h4>
<pre>public&nbsp;boolean&nbsp;isUnknownType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isUnknownType()">ObjectType</a></code></strong></div>
<div class="block">We treat this as the unknown type if any of its implicit prototype
 properties is unknown.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isUnknownType()">isUnknownType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="isCheckedUnknownType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCheckedUnknownType</h4>
<pre>public&nbsp;boolean&nbsp;isCheckedUnknownType()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isCheckedUnknownType()">isCheckedUnknownType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isNullable()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNullable</h4>
<pre>public&nbsp;boolean&nbsp;isNullable()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNullable()">JSType</a></code></strong></div>
<div class="block">Tests whether this type is nullable.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNullable()">isNullable</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="toMaybeEnumType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMaybeEnumType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/EnumType.html" title="class in com.google.javascript.rhino.jstype">EnumType</a>&nbsp;toMaybeEnumType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeEnumType()">JSType</a></code></strong></div>
<div class="block">Downcasts this to an EnumType, or returns null if this is not an EnumType.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeEnumType()">toMaybeEnumType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isConstructor()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConstructor</h4>
<pre>public&nbsp;boolean&nbsp;isConstructor()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isConstructor()">JSType</a></code></strong></div>
<div class="block">Whether this type is a <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype"><code>FunctionType</code></a> that is a constructor or a
 named type that points to such a type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isConstructor()">isConstructor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isNominalType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNominalType</h4>
<pre>public&nbsp;boolean&nbsp;isNominalType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNominalType()">JSType</a></code></strong></div>
<div class="block">Whether this type is a nominal type (a named instance object or
 a named enum).</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNominalType()">isNominalType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isInstanceType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInstanceType</h4>
<pre>public&nbsp;boolean&nbsp;isInstanceType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInstanceType()">JSType</a></code></strong></div>
<div class="block">Whether this type is an Instance object of some constructor.
 Does not necessarily mean this is an <code>InstanceObjectType</code>.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInstanceType()">isInstanceType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isInterface()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInterface</h4>
<pre>public&nbsp;boolean&nbsp;isInterface()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInterface()">JSType</a></code></strong></div>
<div class="block">Whether this type is a <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype"><code>FunctionType</code></a> that is an interface or a named
 type that points to such a type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInterface()">isInterface</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isOrdinaryFunction()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOrdinaryFunction</h4>
<pre>public&nbsp;boolean&nbsp;isOrdinaryFunction()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isOrdinaryFunction()">JSType</a></code></strong></div>
<div class="block">Whether this type is a <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype"><code>FunctionType</code></a> that is an ordinary function or
 a named type that points to such a type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isOrdinaryFunction()">isOrdinaryFunction</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isAllType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAllType</h4>
<pre>public&nbsp;boolean&nbsp;isAllType()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isAllType()">isAllType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isStruct()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStruct</h4>
<pre>public&nbsp;boolean&nbsp;isStruct()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStruct()">JSType</a></code></strong></div>
<div class="block">Returns true iff <code>this</code> can be a <code>struct</code>.
 UnionType overrides the method, assume <code>this</code> is not a union here.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStruct()">isStruct</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isDict()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDict</h4>
<pre>public&nbsp;boolean&nbsp;isDict()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isDict()">JSType</a></code></strong></div>
<div class="block">Returns true iff <code>this</code> can be a <code>dict</code>.
 UnionType overrides the method, assume <code>this</code> is not a union here.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isDict()">isDict</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isNativeObjectType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNativeObjectType</h4>
<pre>public&nbsp;boolean&nbsp;isNativeObjectType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isNativeObjectType()">ObjectType</a></code></strong></div>
<div class="block">Whether this is a built-in object.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isNativeObjectType()">isNativeObjectType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="toMaybeUnionType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMaybeUnionType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/UnionType.html" title="class in com.google.javascript.rhino.jstype">UnionType</a>&nbsp;toMaybeUnionType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeUnionType()">JSType</a></code></strong></div>
<div class="block">Downcasts this to a UnionType, or returns null if this is not a UnionType.

 Named in honor of Haskell's Maybe type constructor.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeUnionType()">toMaybeUnionType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="toMaybeFunctionType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMaybeFunctionType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a>&nbsp;toMaybeFunctionType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeFunctionType()">JSType</a></code></strong></div>
<div class="block">Downcasts this to a FunctionType, or returns null if this is not
 a function.

 For the purposes of this function, we define a MaybeFunctionType as any
 type in the sub-lattice
 { x | LEAST_FUNCTION_TYPE <= x <= GREATEST_FUNCTION_TYPE }
 This definition excludes bottom types like NoType and NoObjectType.

 This definition is somewhat arbitrary and axiomatic, but this is the
 definition that makes the most sense for the most callers.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeFunctionType()">toMaybeFunctionType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="toMaybeEnumElementType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMaybeEnumElementType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/EnumElementType.html" title="class in com.google.javascript.rhino.jstype">EnumElementType</a>&nbsp;toMaybeEnumElementType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeEnumElementType()">JSType</a></code></strong></div>
<div class="block">Downcasts this to an EnumElementType, or returns null if this is not an EnumElementType.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeEnumElementType()">toMaybeEnumElementType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="testForEquality(com.google.javascript.rhino.jstype.JSType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testForEquality</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html" title="enum in com.google.javascript.rhino.jstype">TernaryValue</a>&nbsp;testForEquality(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;that)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#testForEquality(com.google.javascript.rhino.jstype.JSType)">JSType</a></code></strong></div>
<div class="block">Compares <code>this</code> and <code>that</code>.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#testForEquality(com.google.javascript.rhino.jstype.JSType)">testForEquality</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd><ul>
 <li><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html#TRUE"><code>TernaryValue.TRUE</code></a> if the comparison of values of
   <code>this</code> type and <code>that</code> always succeed (such as
   <code>undefined</code> compared to <code>null</code>)</li>
 <li><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html#FALSE"><code>TernaryValue.FALSE</code></a> if the comparison of values of
   <code>this</code> type and <code>that</code> always fails (such as
   <code>undefined</code> compared to <code>number</code>)</li>
 <li><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html#UNKNOWN"><code>TernaryValue.UNKNOWN</code></a> if the comparison can succeed or
   fail depending on the concrete values</li>
 </ul></dd></dl>
</li>
</ul>
<a name="isSubtype(com.google.javascript.rhino.jstype.JSType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSubtype</h4>
<pre>public&nbsp;boolean&nbsp;isSubtype(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;that)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isSubtype(com.google.javascript.rhino.jstype.JSType)">JSType</a></code></strong></div>
<div class="block">Checks whether <code>this</code> is a subtype of <code>that</code>.<p>

 Subtyping rules:
 <ul>
 <li>(unknown) &mdash; every type is a subtype of the Unknown type.</li>
 <li>(no) &mdash; the No type is a subtype of every type.</li>
 <li>(no-object) &mdash; the NoObject type is a subtype of every object
 type (i.e. subtypes of the Object type).</li>
 <li>(ref) &mdash; a type is a subtype of itself.</li>
 <li>(union-l) &mdash; A union type is a subtype of a type U if all the
 union type's constituents are a subtype of U. Formally<br>
 <code>(T&lt;sub&gt;1&lt;/sub&gt;, &amp;hellip;, T&lt;sub&gt;n&lt;/sub&gt;) &amp;lt;: U</code> if and only
 <code>T&lt;sub&gt;k&lt;/sub&gt; &amp;lt;: U</code> for all <code>k &amp;isin; 1..n</code>.</li>
 <li>(union-r) &mdash; A type U is a subtype of a union type if it is a
 subtype of one of the union type's constituents. Formally<br>
 <code>U &amp;lt;: (T&lt;sub&gt;1&lt;/sub&gt;, &amp;hellip;, T&lt;sub&gt;n&lt;/sub&gt;)</code> if and only
 if <code>U &amp;lt;: T&lt;sub&gt;k&lt;/sub&gt;</code> for some index <code>k</code>.</li>
 <li>(objects) &mdash; an Object <code>O&lt;sub&gt;1&lt;/sub&gt;</code> is a subtype
 of an object <code>O&lt;sub&gt;2&lt;/sub&gt;</code> if it has more properties
 than <code>O&lt;sub&gt;2&lt;/sub&gt;</code> and all common properties are
 pairwise subtypes.</li>
 </ul></div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isSubtype(com.google.javascript.rhino.jstype.JSType)">isSubtype</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd><code>this &amp;lt;: that</code></dd></dl>
</li>
</ul>
<a name="getOwnerFunction()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwnerFunction</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a>&nbsp;getOwnerFunction()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnerFunction()">ObjectType</a></code></strong></div>
<div class="block">Gets the owner of this if it's a function prototype.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnerFunction()">getOwnerFunction</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="getCtorImplementedInterfaces()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCtorImplementedInterfaces</h4>
<pre>public&nbsp;java.lang.Iterable&lt;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&gt;&nbsp;getCtorImplementedInterfaces()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getCtorImplementedInterfaces()">ObjectType</a></code></strong></div>
<div class="block">Gets the interfaces implemented by the ctor associated with this type.
 Intended to be overridden by subclasses.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getCtorImplementedInterfaces()">getCtorImplementedInterfaces</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="hashCode()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="getImplicitPrototype()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImplicitPrototype</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&nbsp;getImplicitPrototype()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getImplicitPrototype()">ObjectType</a></code></strong></div>
<div class="block">Gets the implicit prototype (a.k.a. the <code>[[Prototype]]</code> property).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getImplicitPrototype()">getImplicitPrototype</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="removeProperty(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeProperty</h4>
<pre>public&nbsp;boolean&nbsp;removeProperty(java.lang.String&nbsp;name)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#removeProperty(java.lang.String)">ObjectType</a></code></strong></div>
<div class="block">Removes the declared or inferred property from this ObjectType.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#removeProperty(java.lang.String)">removeProperty</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - the property's name</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the property was removed successfully. False if the
         property did not exist, or could not be removed.</dd></dl>
</li>
</ul>
<a name="findPropertyType(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findPropertyType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;findPropertyType(java.lang.String&nbsp;propertyName)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#findPropertyType(java.lang.String)">JSType</a></code></strong></div>
<div class="block">Coerces this type to an Object type, then gets the type of the property
 whose name is given.

 Unlike <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyType(java.lang.String)"><code>ObjectType.getPropertyType(java.lang.String)</code></a>, returns null if the property
 is not found.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#findPropertyType(java.lang.String)">findPropertyType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The property's type. <code>null</code> if the current type cannot
     have properties, or if the type is not found.</dd></dl>
</li>
</ul>
<a name="getJSDocInfo()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJSDocInfo</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;getJSDocInfo()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getJSDocInfo()">ObjectType</a></code></strong></div>
<div class="block">Gets the docInfo for this type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getJSDocInfo()">getJSDocInfo</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="setJSDocInfo(com.google.javascript.rhino.JSDocInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJSDocInfo</h4>
<pre>public&nbsp;void&nbsp;setJSDocInfo(<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#setJSDocInfo(com.google.javascript.rhino.JSDocInfo)">ObjectType</a></code></strong></div>
<div class="block">Sets the docInfo for this type from the given
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a>. The <code>JSDocInfo</code> may be <code>null</code>.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#setJSDocInfo(com.google.javascript.rhino.JSDocInfo)">setJSDocInfo</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="setPropertyJSDocInfo(java.lang.String, com.google.javascript.rhino.JSDocInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPropertyJSDocInfo</h4>
<pre>public&nbsp;void&nbsp;setPropertyJSDocInfo(java.lang.String&nbsp;propertyName,
                        <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#setPropertyJSDocInfo(java.lang.String, com.google.javascript.rhino.JSDocInfo)">ObjectType</a></code></strong></div>
<div class="block">Sets the docInfo for the specified property from the
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a> on its definition.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#setPropertyJSDocInfo(java.lang.String, com.google.javascript.rhino.JSDocInfo)">setPropertyJSDocInfo</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dd><code>info</code> - <code>JSDocInfo</code> for the property definition. May be
        <code>null</code>.</dd></dl>
</li>
</ul>
<a name="getConstructor()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConstructor</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a>&nbsp;getConstructor()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getConstructor()">ObjectType</a></code></strong></div>
<div class="block">Gets this object's constructor.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getConstructor()">getConstructor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>this object's constructor or <code>null</code> if it is a native
 object (constructed natively v.s. by instantiation of a function)</dd></dl>
</li>
</ul>
<a name="getTemplateTypes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateTypes</h4>
<pre>public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;&nbsp;getTemplateTypes()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getTemplateTypes()">ObjectType</a></code></strong></div>
<div class="block">Gets the declared default element type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getTemplateTypes()">getTemplateTypes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../com/google/javascript/rhino/jstype/TemplatizedType.html" title="class in com.google.javascript.rhino.jstype"><code>TemplatizedType</code></a></dd></dl>
</li>
</ul>
<a name="toDebugHashCodeString()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toDebugHashCodeString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toDebugHashCodeString()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toDebugHashCodeString()">JSType</a></code></strong></div>
<div class="block">A hash code function for diagnosing complicated issues
 around type-identity.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toDebugHashCodeString()">toDebugHashCodeString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="getTypeOfThis()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeOfThis</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;getTypeOfThis()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getTypeOfThis()">StaticScope</a></code></strong></div>
<div class="block">Returns the expected type of <code>this</code> in the current scope.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getTypeOfThis()">getTypeOfThis</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getTypeOfThis()">getTypeOfThis</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></dd>
</dl>
</li>
</ul>
<a name="collapseUnion()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collapseUnion</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;collapseUnion()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#collapseUnion()">JSType</a></code></strong></div>
<div class="block">Gets the least supertype of this that's not a union.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#collapseUnion()">collapseUnion</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="matchConstraint(com.google.javascript.rhino.jstype.JSType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchConstraint</h4>
<pre>public&nbsp;void&nbsp;matchConstraint(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;constraint)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchConstraint(com.google.javascript.rhino.jstype.JSType)">JSType</a></code></strong></div>
<div class="block">Modify this type so that it matches the specified type.

 This is useful for reverse type-inference, where we want to
 infer that an object literal matches its constraint (much like
 how the java compiler does reverse-inference to figure out generics).</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchConstraint(com.google.javascript.rhino.jstype.JSType)">matchConstraint</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="toMaybeTemplatizedType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMaybeTemplatizedType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/TemplatizedType.html" title="class in com.google.javascript.rhino.jstype">TemplatizedType</a>&nbsp;toMaybeTemplatizedType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplatizedType()">JSType</a></code></strong></div>
<div class="block">Downcasts this to a TemplatizedType, or returns null if this is not
 a function.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplatizedType()">toMaybeTemplatizedType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="getTemplateTypeMap()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getTemplateTypeMap</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/TemplateTypeMap.html" title="class in com.google.javascript.rhino.jstype">TemplateTypeMap</a>&nbsp;getTemplateTypeMap()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTemplateTypeMap()">JSType</a></code></strong></div>
<div class="block">Returns the template type map associated with this type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTemplateTypeMap()">getTemplateTypeMap</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/javascript/rhino/jstype/StringType.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/google/javascript/rhino/jstype/TemplateTypeMap.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/javascript/rhino/jstype/TemplateType.html" target="_top">Frames</a></li>
<li><a href="TemplateType.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
